Video editing system, method and user interface

ABSTRACT

The present invention relates to a video editing system including: an import manager for importing media files into the video editing system; a user interface; and a synchronisation engine for detecting imported media files having one or more common attributes and causing the display in the user interface of an indicia for each detected media file.

FIELD OF THE INVENTION

The present invention relates generally to video editing software applications. The present invention relates particularly, but not exclusively, to a video editing system, method and user interface that manages video files of a single scene that has been recorded by multiple cameras from different angles.

BACKGROUND OF THE INVENTION

Film and/or video productions are created on video editing systems typically by assembling the project from a collection of constituent elements. Video editing systems allow these constituent elements—which include video clips, audiovisual clips, audio clips and associated metadata—to be separately imported and edited before being merged into the final production. In some cases, the separate video clips arise from using multiple different cameras to record the same scene from different angles.

Current video editing systems provide functionality to manage such multi-camera source material. For example, the Applicant's DaVinci Resolve® software allows the user to manually select the various clips that comprise the multi-camera scene and create a “multicam” file therefrom. DaVinci Resolve® utilises each clip's audio track to synchronise the separate clips within the multicam file during editing operations.

It would be advantageous to provide an alternative means for managing multi-camera source material.

Reference to any prior art in the specification is not an acknowledgment or suggestion that this prior art forms part of the common general knowledge in any jurisdiction or that this prior art could reasonably be expected to be understood, regarded as relevant, and/or combined with other pieces of prior art by a skilled person in the art.

SUMMARY OF THE INVENTION

According to a first aspect of the present invention there is provided a video editing system including:

an import manager for importing media files into the video editing system;

a user interface; and

a synchronisation engine for detecting imported media files having one or more common attributes and causing the display in the user interface of an indicia for each detected media file

The present invention, at least in preferred embodiments, provides a synchronisation engine that is integrated with a video editing system, and automatically detects files having common attributes (such as the individual files of multi-camera source material) and conveniently displays details thereof in the video-editing system's user interface.

The common attribute may be derived from the imported file itself or from the file's metadata. For example, the common attribute may be timecodes that are common to both files. Alternatively, the common attribute may comprise the time and date of the media files (either alone or in combination with the common timecodes), or the files' audio track (in common with either of the timecodes and time/date). The synchronisation engine may be configured to detect additional common attributes. For example, geographical location can be detected and combined with other detected common attributes such as timecode and/or date and time.

The synchronisation engine may also detect a non-common attribute of two files and combine this with one or more detected common attributes of the files. For example, two files that contain video recorded by different cameras (such information derived from the files' respective metadata) but with overlapping timecodes and/or dates and times, are likely to comprise multi-camera source material.

Preferably, the user interface includes a timeline and a spatially separate media bin display area, the indicias being displayed in the media bin display area. Optimally, the indicias are displayed in the media bin display area in a manner that indicates that they share a common attribute. According to one embodiment, the indicias are vertically distributed in the media bin display area to indicate that the detected media files comprise a multi-camera media clip

Preferably, the synchronisation engine is capable of detecting the loading of one detected media file into an editing control of the user interface and automatically causing the display of indicia in the user interface of other detected media files having the common attribute. In this regard, the editing control may be a timeline.

Preferably, the synchronisation engine is capable of locating a detected media file at a correct position in a timeline relative to another detected media file already present in the timeline and having the common attribute.

According to preferred embodiments, the synchronisation engine executes continuously in the background of the video editing system.

According to a second aspect of the present invention, there is provide a method for managing media files in a video editing system, the method including the steps of:

importing media files into the video editing system;

detecting imported media files having one or more common attributes; and displaying an indicia of the detected media files in a user interface of the video editing system.

According to another aspect of the present invention, there is provided a software product including a computer readable medium storing instructions which when executed by a processor provide the video editing system according to the first aspect of the invention or perform the method according to the second aspect of the invention.

According to a further aspect of the present invention, there is provided a user interface for a video editing system, including:

an editing control;

a panel for displaying indicia of a plurality of media files imported into the video editing system; and

a synchronisation engine configured to detect the loading of one of the media files into the editing control and automatically display in the panel indicia of other media files sharing a common attribute with the media file.

As used herein, except where the context requires otherwise, the term “comprise” and variations of the term, such as “comprising”, “comprises” and “comprised”, are not intended to exclude further additives, components, integers or steps.

BRIEF DESCRIPTION OF THE DRAWINGS

Further aspects of the present invention and further embodiments of the aspects described in the preceding paragraphs will become apparent from the following description, given by way of example and with reference to the accompanying drawings, in which:

FIG. 1 is a schematic illustration of an integrated collection of software modules that are suitable for implementing an embodiment of the present invention;

FIG. 2 is a flow chart illustration of an exemplary algorithm executed by the synchronisation engine illustrated in FIG. 1;

FIGS. 3 to 11 are exemplary graphical user interface displays generated by the video editing system according to an embodiment of the present invention; and

FIG. 12 is a schematic illustration of a hardware environment suitable for implementing the video editing system in accordance with an embodiment of the present invention.

DETAILED DESCRIPTION OF THE EMBODIMENTS

FIG. 1 illustrates a video editing system 100 that is suitable for implementing embodiments of the present invention. Video editing system 100 is a software application installed on a computer system (described below) upon which an operating system 190 is also installed. Video editing system 100 includes a non-linear editor 120, providing functionality that allows for the non-destructive editing of source material (such as video and audio clips) and the creation of finished projects therefrom. When required, non-linear editor 120 utilises the computer's hardware resources (including video and graphics resources) in order to provide editing and project-creation functionality. Hardware resources are typically accessed through suitable operating system 190 APIs

Video editing system 100 includes a graphical user interface 140 that displays user interface controls for workflows such as video editing, colour correction and project-creation.

Source material is imported into video editing system 100 through an import manager 160. In this regard, import manager 160 accesses suitable operating system 190 APIs to scan local and remote file systems for suitable source material to import into video editing system 100. Import manager 160 also manages any pre-processing of the source material (such as transcoding) that is required before it can be imported into video editing system 100. Once imported, pertinent details of the source material, such as the filename, directory location, length, hardware details, geographical location, time-and-date, and codec, are stored in a database 165. Database 165 is also used by video editing system 100 to store and access details of projects that are created from the imported source material.

Video editing system 100 further includes a synchronisation engine 180. As described below, synchronisation engine 180 implements a ‘live’ synching view that automatically identifies imported media clips that share a common attribute with a selected imported clip and displays those clips in the user interface. According to one embodiment, the video editing system automatically creates a folder (or ‘media bin’) for the multiple media clips sharing the common attribute and displays the media clips in that folder.

For example, the selected media clip could be in the process of being viewed or edited, in which case the synchronisation engine 180 displays all other media clips that share a common attribute with the selected media clip. This kind of ‘live’ view of related (i.e sharing a common attribute) media clips conveniently shows what clips are available at a particular point in time, and for how long those related clips are available. The live view also allows the related media clips to be quickly accessed and edited.

An exemplary algorithm executed by synchronisation engine 180 to provide the live synching view will now be described by reference to FIG. 2. In preferred embodiments, the algorithm is executed continuously in the background of video editing system 100. It is also preferred that the algorithm effects synchronisation at ‘source level’, or in other words, utilises the native file format as delivered from the camera without, or substantially without manipulation. This potentially delivers a more accurate and efficient synchronisation, as well as ensuring that imported media is synchronised at the time of first importation and is thus available to the user when it comes time to edit. Source-level synchronisation also allows a wide range of detected synchronisation information to be used in subsequent projects that utilise the same source media.

The process commences at step 200. At step 210, a media file is imported into video editing system 100. Import manager 160 provides suitable user interface controls for importation. For example, import manager 160 provides a control that allow files to be dragged and dropped from their location in the computer's file system into a project paradigm provided by video editing system 100. For example, video editing system 100 may allow the user to create folders (or “bins”) in a directory hierarchy (or “media pool”), to which selected media files can be dragged and thus imported into the video editing system.

At step 220, synchronisation engine 180 parses the imported media file and its metadata.

At step 230, synchronisation engine 180 attempts to match the imported media file's timecode information with the timecodes of other media files previously imported into video editing system 100. As known to those skilled in the art, timecodes are generated by a video camera contemporaneously with video capture and are used to identify precise locations in the captured video. According to the SMPTE standard, timecodes are generated as 32-bit numbers, each representing hour, minute, second and frame.

Identifying a sequence of common timecode values in two different files, each containing video recorded by a distinct camera (which is apparent from a camera identifier field present in the files' metadata) suggests that the files' underlying video is the same scene filmed by different cameras, potentially from different angles.

In the event that there are no common timecode values between the newly imported file and the previously imported files, the method proceeds to step 270 (see below).

In the event that the timecode of the two media files is matched (which may occur if there are overlapping timecode values), the method proceeds to step 240, at which the synchronisation engine 180 attempts to match the date and time information present in the imported file's metadata with corresponding metadata of previously imported files. Date and time information is typically included in the video file using the camera's own internal clock. It is necessarily not as precise as timecode data and is thus used as a secondary matching criteria.

In the event that time and date metadata can be matched, it is likely that the two files comprise a multi-camera source as there are overlapping timecodes in video recorded at around the same time and date. In this scenario, a related clip group is created (if necessary) and the newly imported media file is assigned to the group (step 250). The related clip group contains all of the files that have been detected as sharing the common attribute (such as common timecode values and/or date and time). As described below, the related clip group is used to trigger user interface functionality that automatically displays all of the clips in the group in response to the user interacting with one of the clips.

In the event that time and date metadata cannot be matched, the method proceeds to step 260, at which the synchronisation engine performs an audio comparison routine on any audio track present in the newly-imported file and those of the previously-imported files. In the event that the comparison routine indicates commonalities between the two audio files (which is reflective of the fact that the files' underlying video is of the same scene filmed by different cameras), the method returns to step 250, at which the newly imported media file is assigned to an appropriate related clip group.

Other matching algorithms can be used with the present invention. For example, files could be matched solely using timecodes or solely using date/time information. Other algorithms utilise various combinations of matching criteria such as timecode and audio, or date/time and audio. Other matching criteria, such as geographical coordinates or other location information, can also be used.

The Applicant's DaVinci Resolve® is an example of a video editing system that is suitable for implementing embodiments of the present invention. FIG. 3 illustrates an exemplary user interface 140 generated by DaVinci Resolve. Interface 140 includes a panel with a media bin display area 300 for receiving and displaying imported video clips. As no clips have been imported into the project shown in FIG. 3, the media bin display area 300 is empty. Interface 140 also includes a source viewer 310 for viewing a selected video clip and a timeline 320 to which clips can be dragged from the source viewer 310 placed for editing and project creation.

FIG. 4 shows the state of user interface 140 after a series of clips have been imported by placement in media bin display area 300. In the illustrated embodiment, the synchronisation engine 180 has performed a live synching on the series of imported clips using the matching algorithm described above. User interface 140 also includes a synch button 325 that, once activated, launches the synchronisation engine 180 to perform a synchronisation. Activating the synch button 325 displays a synchronisation control window that allows the user to select various options pertaining to the synchronisation. For example, through the synchronisation window, the user can select whether the synchronisation is performed on the basis of timecode, time and date, audio or any combination thereof.

In the embodiment illustrated in FIG. 4, the matching algorithm has determined that the imported clips are in respect of a common scene that has been recorded by four different cameras. User interface 140 displays a camera selection window 330 that allows the user to select individual cameras.

FIG. 5 shows the state of user interface 140 after the user selects “camera 1” from the camera selection window illustrated in FIG. 4. In the illustrated embodiment, only one of the imported video clips was recorded using “camera 1”. This is reflected in the single video clip shown in media bin display area 300. The media clip can be selected for viewing in the source viewer 310 and dragged into timeline 320 for editing.

FIG. 6 illustrates the live synching view provided by the present invention. The synching view is selected by activating a synchronised-view button 610 labelled as ‘Sync Bin’ in FIG. 6. Selecting the synchronised-view button 610 causes the NLE 120 to create a new media bin (named ‘Synch Bin’) and render the render the contends thereof in a synch bin display area 620. In the illustrated embodiment, an indicia (in the form of a thumbnail) of each clip present in the new media bin is displayed in the synch bin display area.

The clip indicias are displayed in synch bin display area 620 in a manner that indicates that they are synchronised and thus share one or more common attributes. In the illustrated embodiment, the indicia of the clips recorded by the four different cameras (as determined by the matching algorithm) are displayed in a vertically distributed manner in synch bin display area 620.

In the embodiment of the live synching view illustrated in FIG. 6, source viewer 310 includes a separate viewing area for each of the four cameras.

Synch bin display area 620, not only displays the current clip 630 (namely the clip that is present in the timeline 320 and source viewer 310), but also automatically displays any other clips in current clip 630's related clip group. As noted above, in the illustrated embodiment, the related clip group comprises recordings of the same scene by different cameras. These related clips are shown in FIG. 6 as clips 640 and 650. Clips 630, 640 and 650 are distributed vertically in synch bin display area 620 to illustrate their mutually synchronised relationship. As noted above, individual clips are assigned to a relevant clip group by synchronisation engine 180, upon the synchronisation engine detecting that the clips have common attributes. Display of related clips in a dedicated media bin is completely automatic and transparent to the user.

Related clips 630, 640, 650 are displayed in synch bin display area in accordance with the metadata that was used to detect the common attribute. For example, if clips are detected as having common timecode values, these are used to display the clips in a manner that illustrates the commonality. In the embodiment shown in FIG. 6, clip 630 commences first, which indicates that there was a time interval during which camera 1 was the only camera recording the scene. This is reflected in the source viewer 310 shown in FIG. 6, which only displays clip 630, with the other viewing areas being blank.

At a later point in time, clips 630 and 640 overlap (for example by having common timecodes or audio tracks), indicating that cameras 1 and 2 were simultaneously and independently recording the same scene. At a yet later point in time, all three clips 630, 640 and 650 overlap, indicating that each of camera 1, camera 2 and camera 3 was recording the same scene. This temporal information is displayed by offsetting the commencement points of clips 640 and 650 relative to clip 630.

The user can drag a clip (in FIG. 6, clip 630) into a timeline 320 for editing and project creation. NLE 120 utilises the detected attribute information (for example timecode information, time-and-date, or audio track) to locate the clip in the correct temporal location in the timeline. Attribute information is also used to preserve the synchronisation of multiple clips when they are dragged into the timeline 320.

FIG. 7 illustrates the state of user interface 140 after a playhead 710 in timeline 320 has progressed to a later time than shown in FIG. 6. A second playhead 715 is provided in synch bin display area 620, which the user can also manipulate to scroll through the displayed clips.

At the time shown in FIG. 7, playheads 710 and 715 have advanced to a position where multiple related clips are being played. In particular, at the temporal position shown in FIG. 7, all four cameras (namely camera 1, camera 2, camera 3 and camera 4) were individually and simultaneously recording the same scene. This is indicated by the vertically distributed display of clips 630, 640, 650 and 660 in synch bin display area 620. The present invention detects such a scenario and automatically loads all related clips into the relevant viewing areas of source viewer 310.

As shown in FIG. 8, any one of the individual views can be conveniently selected for viewing in source viewer 310. An audio waveform viewer 690 is provided immediately below source viewer 310. Audio waveform viewer 690 functions as an editing control and allows the user, for example, to mark the clip (in this case clip 660) with in and out points. The in and out points define a section of the overall clip than can be loaded into the timeline 320 for editing and project creation. As noted above, NLE 120 utilises the detected attribute information (for example timecode information) to locate the clip section in the correct temporal location in the timeline 320.

As noted above, once clips are displayed are displayed in synch bin display area 620, they can be suitably dragged to timeline 320 and edited in the usual way. This is illustrated in FIG. 9 that shows two related clips 910 and 920 having been dragged from source viewer 310 or synch bin display area into timeline 320. Source viewer 310 is shown as displaying all four of the clips present in synch bin display area 620, although only two of them have been dragged into timeline 320.

Importantly, the synchronised temporal relationship between clips 910 and 920 (as detected by the matching algorithm) is preserved when the clips are dragged into the timeline 320. This allows for camera switches to be seamlessly performed. In other words, when the project cuts from clip 910 to clip 920 and back to clip 910 (as illustrated in FIG. 9), continuity of the overall project is preserved.

The synchronisation engine 180 of the present invention operates seamlessly with the other editing features provided by video editing system 100. This is illustrated in FIG. 10, that shows an unrelated clip 950 that has been dragged into the same track of timeline 320 occupied by clip 920. Such editing features are permitted despite clip 950 not being in the same related clip group as clip 920. At the same time, the temporal relationship between clips 910 and 920 is preserved in the timeline 320.

FIG. 11 illustrates the state of the user interface of FIG. 10 after a playhead 1000 has progressed beyond playing clip 920 and has commenced playing clip 950. As noted above, clip 950 is not in the same related clip group 920, as the synchronisation engine 180 has not detected any common attributes shared by the clips. However, clip 950 does share common attributes with other clips, those attributes having been previously detected by synchronisation engine 180. In this scenario, synchronisation engine 180 automatically creates a new synch bin and synch bin display area 620, and loads the clips that are related to clip 920 into the newly created bin. The newly created synch bin display area is displayed when playhead 1000 commences playing clip 950. These loaded clips can then be suitably dragged onto the time line for editing.

FIG. 12 provides a block diagram that illustrates one example of a computer system 1200 upon which embodiments of the invention may be implemented. Computer system 1200 includes a bus 1202 or other communication mechanism for communicating information, and a hardware processor 1204 coupled with bus 1002 for processing information. Hardware processor 1204 may be, for example, a general purpose microprocessor, a graphics processing unit, other type of processing unit or combinations thereof.

Computer system 1200 also includes a main memory 1206, such as a random access memory (RAM) or other dynamic storage device, coupled to bus 1202 for storing information and instructions to be executed by processor 1004. Main memory 1206 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 1204. Such instructions, when stored in non-transitory storage media accessible to processor 1204, render computer system 1200 into a special-purpose machine that is customized to perform the operations specified in the instructions.

Computer system 1002 further includes a read only memory (ROM) 1208 or other static storage device coupled to bus 1202 for storing static information and instructions for processor 1204. A storage device 1210, such as a magnetic disk or optical disk, is provided and coupled to bus 1002 for storing information and instructions including the video editing software application described above.

The computer system 1000 may be coupled via bus 1002 to a display 1212 (such as an LCD, LED, touch screen display or other display), for displaying information to a computer user, such as the graphical user interface described and illustrated above. An input device 1214, including alphanumeric and other keys, may be coupled to the bus 1202 for communicating information and command selections to processor 1204. Another type of user input device is a cursor control, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 1204 and for controlling cursor movement on display 1212.

According to one embodiment, the techniques herein are performed by computer system 1200 in response to processor 1204 executing one or more sequences of one or more instructions contained in main memory 1206. Such instructions may be read into main memory 1206 from another storage medium, such as a remote database. Execution of the sequences of instructions contained in main memory 1206 causes processor 1204 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions.

The terms “storage media” or “storage medium” as used herein refers to any non-transitory media that stores data and/or instructions that cause a machine to operate in a specific fashion. Such storage media may comprise non-volatile media and/or volatile media. Non-volatile media includes, for example, optical or magnetic disks, such as storage device 1210. Volatile media includes dynamic memory, such as main memory 1206. Common forms of storage media include, for example, a floppy disk, a flexible disk, hard disk, solid state drive, magnetic tape, or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, NVRAM, any other memory chip or cartridge.

Computer system 1200 also includes a communication interface 1216 coupled to bus 1202. Communication interface 1216 provides a two-way data communication coupling to a network link 1218 that is connected to a communication network 1220. For example, communication interface 1016 may be an integrated services digital network (ISDN) card, cable modem, satellite modem, etc. As another example, communication interface 1016 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, communication interface 1218 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.

It will be understood that the invention disclosed and defined in this specification extends to all alternative combinations of two or more of the individual features mentioned or evident from the text or drawings. All of these different combinations constitute various alternative aspects of the invention. 

1. A video editing system including: an import manager for importing media files into the video editing system; a user interface; and a synchronisation engine for detecting imported media files having one or more common attributes and causing the display in the user interface of an indicia for each detected media file.
 2. A video editing system according to claim 1, wherein the common attribute/s indicate that the detected media files comprise a multi-camera media clip.
 3. A video editing system according to claim 2, wherein the common attribute includes one or more of a timecode, time, date and an audio waveform.
 4. A video editing system according to any preceding claim, wherein the user interface includes a timeline and a spatially separate media bin display area, the indicias being displayed in the media bin display area.
 5. A video editing system according to claim 4, wherein the indicias are displayed in the media bin display area in a manner that indicates that they share a common attribute.
 6. A video editing system according to claim 5, wherein the indicias are vertically distributed in the media bin display area to indicate that the detected media files comprise multi-camera media clips. A video editing system according to any of claims 4 to 6, wherein the user interface includes a play head located in or adjacent to the media bin display area.
 8. A video editing system according to any preceding claim, wherein the indicia is a thumbnail of the detected media file.
 9. A video editing system according to any preceding claim, wherein the synchronisation engine is configured to detect the loading of one detected media file into an editing control of the user interface and automatically cause the display in the user interface of indicias of other detected media files having the common attribute.
 10. A video editing system according to claim 9, wherein the editing control is a timeline.
 11. A video editing system according to any one of claims 4 to 10, wherein the synchronisation engine is configured to utilise common attribute data to locate a detected media file at a correct temporal position in the timeline.
 12. A video editing system according to claim 11, wherein the synchronisation engine is configured to utilise common attribute data to locate another detected media file in the timeline at a correct temporal position relative to the detected media file.
 13. A video editing system according to any preceding claim, wherein the synchronisation engine executes continuously in the background of the video editing system.
 14. A method for managing media files in a video editing system, the method including the steps of: importing media files into the video editing system; detecting imported media files having one or more common attributes; and displaying an indicia of each detected media file in a user interface of the video editing system.
 15. A method according to claim 14, further including the steps of: creating a media bin for the detected media files; and displaying the indicias of the detected media files in the user interface in a media bin display area.
 16. A method according to claim 15, wherein the indicias are displayed in the media bin display area in a manner that indicates that they share a common attribute.
 17. A method according to claim 16, wherein the indicias are vertically distributed in the media bin display area to indicate that the detected media files comprise multi-camera media clips.
 18. A software product including a computer readable medium storing instructions which when executed by a processor provide the video editing system according to any one of claims 1-13.
 19. A user interface for a video editing system, including: an editing control; a media bin display area spatially separated from the editing control for displaying indicia of a plurality of media files imported into the video editing system; and a synchronisation engine configured to detect the loading of one of the media files into the editing control and automatically display in the media bin display area indicia of other media files sharing a common attribute with the media file. 